home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / misc / integra1_0a.lha / Integra / doc / integra_lib.doc < prev    next >
Encoding:
Text File  |  1995-02-06  |  5.6 KB  |  137 lines

  1. This file is a documentation of integraXXX.lib, updated to version 1.0a
  2. (released 06-02-1995)
  3.  
  4. ------------------------------------------------------------------------------
  5. The authors are in NO WAY responsible for the suitability or accuracy of this
  6. documentation and/or the program it describes. Any damage directly or
  7. indirectly caused by the use or  misuse of this program and/or documentation
  8. is the sole responsibility of the user himself.
  9.  
  10. ------------------------------------------------------------------------------
  11. Integra.lib v1.0a is
  12.  
  13. Copyright (C) 1995 Daniele Finocchiaro, Gianluca Marcoccia.
  14.            All rights reserved.
  15.  
  16. Daniele Finocchiaro
  17. via P. Scuderi 1
  18. 95015 Linguaglossa (Ct)
  19. ITALIA
  20.  
  21. Marcoccia Gianluca
  22. Via Garibaldi 78 
  23. 56100 Pisa (PI)
  24. ITALIA
  25.  
  26. E-Mail: (marcocci@cli.di.unipi.it)
  27.  
  28.  
  29. This program may be distributed non-commercially only providing that the
  30. executable, documentation and copyright notices remain unchanged and are
  31. included with the distribution. Distribuition right are granted to Fred Fish
  32. and anyone else who charges the same fees he does.
  33. Special right are granted to Aminet.
  34.  
  35. YOU CANNOT USE THIS LIBRARY INSIDE A COMMERCIAL PRODUCTION WITHOUT THE
  36. WRITTEN CONSENT OF THE AUTHORS.
  37. (we are working on better/faster version of the library,
  38.  if you contact us we might already probably supply a newer version of this,
  39.  special custom version can be arranged on requests)
  40.  
  41. This program is FREEWARE.
  42.  
  43. ------------------------------------------------------------------------------
  44.  
  45. The library is virtually divided in three parts:
  46.  
  47.     1) a global adaptive quadrature method
  48.  
  49.     2) a polinomial interpolation method
  50.  
  51.     3) a parser routine
  52.  
  53. ------------------------------------------------------------------------------
  54. The first part of the library makes available two functions that are an
  55. implementation of a sofisticated and very precise scheme of integration.
  56. Anyway these require the function f() to be calculable in every point we
  57. need. You have to supply either a C function that calculates it upon request,
  58. or an expression in the form of a string.
  59.  
  60. In both cases the integration scheme used is the same, and its scope is
  61. to obtain the requested accuracy with the minimum number of evaluations of
  62. the function f(). The algorithm used is a global adaptive quadrature.
  63. Briefly, it calculates a first approximation of the value of the integral
  64. in the whole range, it this result looks enough accurate it returns it
  65. as a results and exits; otherwise the range gets divided in two sub-ranges,
  66. and on every of the sub-ranges we re-calculate the integral.
  67. Applying recursively this scheme we try to get to the requested accuracy.
  68.  
  69. The algorithm is clever enough to:
  70. - concentrate the evaluations of f() in the part of f() where it is has
  71.   more integration problems. This is a consequence of the adaptive strategy
  72.   being used.
  73. - re-utilize already known values of f() to calculate further approximations,
  74.   thus requiring minimum number of evaluations.
  75.   This is due to the use of RMS rules.
  76.  
  77. For a theoric explanation on RMS rules and their utilization
  78. see bibliography. 
  79.  
  80. (At the University of Pisa these arguments)
  81. (are topics of the Numeric Analisys exam. )
  82.  
  83. ------------------------------------------------------------------------------
  84. The second part of the library is to be used when you have the data about
  85. f(x) evaluated in a particular set of x points, but you dont know the
  86. function f() explicitely. This is the case of experimental data.
  87. This part of the library does offer two functions, the first to be used
  88. when the set of x points is equidistribuited over the range of integration,
  89. the second to be used when the set of x points has no particular property.
  90. (when the point are equidistribuited a much more efficient method can be
  91. used.)
  92. These routines use an enhanced version of Cavalieri-Simpson method.
  93. Also supplied are the equivalent functions (as above) which also return
  94. partial computation results. (useful for monitoring)
  95.  
  96. ------------------------------------------------------------------------------
  97. The third part of the library yelds a string parser function.
  98. What a parser should do is to evaluate a string which contains a function
  99. written in ascii form, returning the numeric value
  100. (eventually in a particular x).
  101. This function isable to execute the operations described in the string,
  102. such as additions and multiplications, and apply functions such as sin and
  103. cosin.
  104.  
  105. This function has been supplied for users comfort, because WITHOUT the
  106. possibility of supplying the function as an input string the function
  107. that you are willing to integrate should ALWAYS be known at compile time.
  108. The use of a parser eliminates this need, allowing the use to supply such
  109. a function at run time.
  110.  
  111. This parser is based on the code `recursive descent parser' shown in the
  112. book "C-The Complete Reference" by Herb Schildt (Mc-Graw Hill) pagg. 562.
  113.  
  114. A modified version of which (multiparser) has been used in the program
  115. 'MultiFun' (by Daniele Finocchiaro, 1991)
  116.  
  117. ------------------------------------------------------------------------------
  118. Bibliography:
  119.  
  120. P.J. Davis, P. Rabinowitz. - Methods of Numerical Integration.
  121.     Academic Press, New York, 1975.
  122.  
  123. R. Bevilacqua, D. Bini, M. Capovani, O. Menchi. - Metodi Numerici.
  124.     Zanichelli, Bologna, 1992.
  125.  
  126. P. Favati, G. Lotti, F. Romani.
  127.     - Interpolatory Integration Formulas for Optimal Composition.
  128.         ACM Transaction on Mathematical Software.
  129.         Vol 17, N.2, June 1991, pp. 207-217
  130.  
  131. P. Favati, G. Lotti, F. Romani.
  132.     - Improving QUADPACK Integration Routines.
  133.         ACM Transaction on Mathematical Software.
  134.         Vol 17, N.2, June 1991, pp. 218-232
  135.  
  136. ------------------------------------------------------------------------------
  137.